package com.test.lyt.controller;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import redis.clients.jedis.*;

import java.util.HashSet;
import java.util.Set;

public class JedisClusterExample {
    public static void main(String[] args) {

        // 设置Jedis连接池配置
        GenericObjectPoolConfig<Connection> poolConfig = new GenericObjectPoolConfig<>();
        poolConfig.setMaxTotal(128); // 设置最大连接数
        poolConfig.setMaxIdle(16);   // 设置最大空闲连接数
        poolConfig.setMinIdle(4);    // 设置最小空闲连接

        // 设置集群节点信息
        Set<HostAndPort> jedisClusterNodes = new HashSet<>();
        jedisClusterNodes.add(new HostAndPort("192.168.8.19", 7000));
        jedisClusterNodes.add(new HostAndPort("192.168.8.19", 7001));
        jedisClusterNodes.add(new HostAndPort("192.168.8.19", 7002));
        jedisClusterNodes.add(new HostAndPort("192.168.8.17", 7000));
        jedisClusterNodes.add(new HostAndPort("192.168.8.17", 7001));
        jedisClusterNodes.add(new HostAndPort("192.168.8.17", 7002));
        jedisClusterNodes.add(new HostAndPort("192.168.8.16", 7000));
        jedisClusterNodes.add(new HostAndPort("192.168.8.16", 7001));
        jedisClusterNodes.add(new HostAndPort("192.168.8.16", 7002));


        // 创建JedisCluster实例
        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes,10,10,10,"Qsop_feih389^",poolConfig)) {
            // 执行Redis命令
            String key = "lyt0000";
            String value = "lyt0000";
            jedisCluster.set(key, value);
            String retrievedValue = jedisCluster.get(key);
            System.out.println("get value for '" + key + "': " + retrievedValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}